"Refactoring" Refactoring
نویسندگان
چکیده
Code refactoring’s primary impetus is to control technical debt, a metaphor for the cost in software development due to the extraneous human effort needed to resolve confusing, obfuscatory, or hastily-crafted program code. While these issues are often described as causing “bad smells,” not all bad smells emanate from the code itself. Some (often the most pungent and costly) originate in the formation, or expressions, of the antecedent intensions the software proposes to satisfy. Paying down such technical debt requires more than grammatical manipulations of the code. Rather, refactoring in this case must attend to a more inclusive perspective; particularly how stakeholders perceive the artifact; and their conception of quality – their appreciative system. First, this paper explores refactoring as an evolutionary design activity. Second, we generalize, or “refactor,” the concept of code refactoring, beyond changes to code structure, to improving design quality by incorporating the stakeholders’ experience of the artifact as it relates to their intensions. Third, we integrate this refactored refactoring as the organizing principle of design as a reflective practice. The objective is to improve the clarity, understandability, maintainability, and extensibility manifest in the stakeholder intensions, in the artifact, and in their interrelationship!
منابع مشابه
Assessing the Quality of Refactoring Patterns for Introducing Design Patterns
Refactoring is a well-known process to improve the code design of object-oriented programs. Recently, several literatures focus on refactoring with introducing design patterns that are general repeated solutions to common problems in software design. For making it easy to perform such refactoring, a lot of refactoring patterns are proposed. Each refactoring pattern includes a description of ref...
متن کاملAssisting Refactoring Tool Development through Refactoring Characterization
Tool support for refactoring is widespread nowadays. The most widely known IDEs include refactoring support, and many refactoring-specific tools are also available. Developers are aware of refactoring activities and they do refactor their applications even manually or in an assisted way. For the users of refactoring tools, the current state of the art is well documented in refactoring catalogs,...
متن کاملWhy Don't People Use Refactoring Tools?
Tools that perform refactoring are currently under-utilized by programmers. As more advanced refactoring tools are designed, a great chasm widens between how the tools must be used and how programmers want to use them. In this position paper, we characterize the dominant process of refactoring, demonstrate that many research tools do not support this process, and initiate a call to action for d...
متن کاملBetter Refactoring Tools for a Better Refactoring Strategy
Refactoring tools can improve the speed and accuracy with which we create and maintain software — but only if they are used. In practice, tools are not used as much as they could be; this seems to be because they do not align with the refactoring strategy preferred by the majority of programmers: floss refactoring. We propose five principles that characterize successful floss refactoring tools ...
متن کاملRefactoringScript: A Script and Its Processor for Composite Refactoring
Refactoring is widely recognized as a method to improve the internal qualities of source code. However, manual refactoring is time-consuming and error-prone. Consequently, many tools to support automated refactoring have been suggested, but most support only unit and simple refactoring, making it difficult to perform composite refactoring (e.g., introducing a design pattern) where a refactoring...
متن کاملTowards an Investigation of Opportunities for Refactoring to Design Patterns
Refactoring is a well-known process to improve the maintainability of object-oriented software. Recently, it is said that refactoring to design patterns can improve design quality of maintaining software. However, there are a few case studies of refactoring to design patterns. This position paper shows our approach to investigate opportunities for refactoring to design patterns in software syst...
متن کامل